// 创建路由守卫

import router from "../router/index";
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

// 前置路由守卫

// 处理方法 =》 内部页面还是外部页面

function isPage(path:any){
    // 1.定义当前项目中所有的外部页面
    let listP = ['/','/login']

    let index = listP.findIndex((item)=>{
        return item==path;
    })
    return index;
}

router.beforeEach((to,from,next)=>{ //触发这个处理函数
     // to 去那个组件
     // from 来自那个组件
     // next() => 作用是继续向下执行 =》根据路由占位符执行(根据路径匹配组件)

     NProgress.start()/**请求进度条-开始 */

    // console.log(to,8888 );
    // next() // 如果没有这个next()，就不会执行底层的路由占位符

    // （1）我去的页面是内部的页面还是外部的页面 =》 
        // 1. 通过地址  2. 通过路由信息

    if(isPage(to.fullPath)>-1){ // 》-1说明在listP里面，是外部页面
        next()
    }else{  //从内部页面 =》 1.是否登录
        if(sessionStorage.getItem('token')){
            next()
        }else{ //没有登录
            next('/')
        }
    }
})

// 进度条结束
router.afterEach(() => {
    NProgress.done()
  })

// 3.将这个代码在main.ts中引入（引入了就会执行）